home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
lisp
/
kcl
/
akcl
/
kcl.lha
/
lsp
/
evalmacros.c
< prev
next >
Wrap
C/C++ Source or Header
|
1987-06-04
|
24KB
|
1,033 lines
/* (C) Copyright Taiichi Yuasa and Masami Hagiya, 1984. All rights reserved. */
#include <cmpinclude.h>
#include "evalmacros.h"
init_evalmacros(start,size,data)char *start;int size;object data;
{ register object *base=vs_top;register object *sup=base+VM2;vs_top=sup;vs_check;
Cstart=start;Csize=size;Cdata=data;set_VV(VV,VM1,data);
MM(VV[44],L1,start,size,data);
MM(VV[45],L2,start,size,data);
MM(VV[46],L3,start,size,data);
MM(VV[47],L4,start,size,data);
MM(VV[48],L5,start,size,data);
MM(VV[49],L6,start,size,data);
MM(VV[50],L7,start,size,data);
MM(VV[51],L8,start,size,data);
MM(VV[52],L9,start,size,data);
MM(VV[33],L10,start,size,data);
MM(VV[53],L11,start,size,data);
MM(VV[54],L12,start,size,data);
MM(VV[5],L13,start,size,data);
MM(VV[55],L14,start,size,data);
MM(VV[56],L15,start,size,data);
MM(VV[57],L16,start,size,data);
MM(VV[58],L17,start,size,data);
MM(VV[30],L18,start,size,data);
MM(VV[59],L19,start,size,data);
MM(VV[60],L20,start,size,data);
MM(VV[61],L21,start,size,data);
MM(VV[38],L22,start,size,data);
MM(VV[62],L23,start,size,data);
MM(VV[32],L24,start,size,data);
MM(VV[63],L25,start,size,data);
MM(VV[64],L26,start,size,data);
vs_top=vs_base=base;
}
/* macro definition for DEFVAR */
static L1()
{ register object *base=vs_base;
register object *sup=base+VM3;
vs_reserve(VM3);
check_arg(2);
vs_top=sup;
{object V1=base[0]->c.c_cdr;
if(endp(V1))invalid_macro_call();
base[2]= (V1->c.c_car);
V1=V1->c.c_cdr;
if(endp(V1)){
base[3]= Cnil;
base[4]= Cnil;
} else {
base[3]= (V1->c.c_car);
base[4]= Ct;
V1=V1->c.c_cdr;}
if(endp(V1)){
base[5]= Cnil;
} else {
base[5]= (V1->c.c_car);
V1=V1->c.c_cdr;}
if(!endp(V1))invalid_macro_call();}
if((base[4])==Cnil){
goto T4;}
if((base[5])==Cnil){
goto T7;}
base[6]= list(2,VV[2],base[2]);
base[7]= list(2,VV[1],base[6]);
base[8]= list(2,VV[2],base[2]);
base[9]= list(4,VV[3],base[8],base[5],VV[4]);
base[10]= list(2,VV[2],base[2]);
base[11]= list(2,VV[6],base[10]);
base[12]= list(3,VV[7],base[2],base[3]);
base[13]= list(3,VV[5],base[11],base[12]);
base[14]= list(2,VV[2],base[2]);
base[15]= list(5,VV[0],base[7],base[9],base[13],base[14]);
vs_top=(vs_base=base+15)+1;
return;
T7:;
base[6]= list(2,VV[2],base[2]);
base[7]= list(2,VV[1],base[6]);
base[8]= list(2,VV[2],base[2]);
base[9]= list(2,VV[6],base[8]);
base[10]= list(3,VV[7],base[2],base[3]);
base[11]= list(3,VV[5],base[9],base[10]);
base[12]= list(2,VV[2],base[2]);
base[13]= list(4,VV[0],base[7],base[11],base[12]);
vs_top=(vs_base=base+13)+1;
return;
T4:;
base[6]= list(2,VV[2],base[2]);
base[7]= list(2,VV[1],base[6]);
base[8]= list(2,VV[2],base[2]);
base[9]= list(3,VV[0],base[7],base[8]);
vs_top=(vs_base=base+9)+1;
return;
}
/* macro definition for DEFPARAMETER */
static L2()
{ register object *base=vs_base;
register object *sup=base+VM4;
vs_reserve(VM4);
check_arg(2);
vs_top=sup;
{object V2=base[0]->c.c_cdr;
if(endp(V2))invalid_macro_call();
base[2]= (V2->c.c_car);
V2=V2->c.c_cdr;
if(endp(V2))invalid_macro_call();
base[3]= (V2->c.c_car);
V2=V2->c.c_cdr;
if(endp(V2)){
base[4]= Cnil;
} else {
base[4]= (V2->c.c_car);
V2=V2->c.c_cdr;}
if(!endp(V2))invalid_macro_call();}
if((base[4])==Cnil){
goto T11;}
base[5]= list(2,VV[2],base[2]);
base[6]= list(2,VV[1],base[5]);
base[7]= list(2,VV[2],base[2]);
base[8]= list(4,VV[3],base[7],base[4],VV[8]);
base[9]= list(3,VV[7],base[2],base[3]);
base[10]= list(2,VV[2],base[2]);
base[11]= list(5,VV[0],base[6],base[8],base[9],base[10]);
vs_top=(vs_base=base+11)+1;
return;
T11:;
base[5]= list(2,VV[2],base[2]);
base[6]= list(2,VV[1],base[5]);
base[7]= list(3,VV[7],base[2],base[3]);
base[8]= list(2,VV[2],base[2]);
base[9]= list(4,VV[0],base[6],base[7],base[8]);
vs_top=(vs_base=base+9)+1;
return;
}
/* macro definition for DEFCONSTANT */
static L3()
{ register object *base=vs_base;
register object *sup=base+VM5;
vs_reserve(VM5);
check_arg(2);
vs_top=sup;
{object V3=base[0]->c.c_cdr;
if(endp(V3))invalid_macro_call();
base[2]= (V3->c.c_car);
V3=V3->c.c_cdr;
if(endp(V3))invalid_macro_call();
base[3]= (V3->c.c_car);
V3=V3->c.c_cdr;
if(endp(V3)){
base[4]= Cnil;
} else {
base[4]= (V3->c.c_car);
V3=V3->c.c_cdr;}
if(!endp(V3))invalid_macro_call();}
if((base[4])==Cnil){
goto T15;}
base[5]= list(2,VV[2],base[2]);
base[6]= list(3,VV[9],base[5],base[3]);
base[7]= list(2,VV[2],base[2]);
base[8]= list(4,VV[3],base[7],base[4],VV[10]);
base[9]= list(2,VV[2],base[2]);
base[10]= list(4,VV[0],base[6],base[8],base[9]);
vs_top=(vs_base=base+10)+1;
return;
T15:;
base[5]= list(2,VV[2],base[2]);
base[6]= list(3,VV[9],base[5],base[3]);
base[7]= list(2,VV[2],base[2]);
base[8]= list(3,VV[0],base[6],base[7]);
vs_top=(vs_base=base+8)+1;
return;
}
/* macro definition for AND */
static L4()
{ register object *base=vs_base;
register object *sup=base+VM6;
vs_reserve(VM6);
check_arg(2);
vs_top=sup;
{object V4=base[0]->c.c_cdr;
base[2]= V4;}
if(!(endp(base[2]))){
goto T18;}
base[3]= Ct;
vs_top=(vs_base=base+3)+1;
return;
T18:;
base[3]= reverse(base[2]);
base[4]= cdr(base[3]);
base[5]= car(base[3]);
T24:;
if(!(endp(base[4]))){
goto T25;}
vs_top=(vs_base=base+5)+1;
return;
T25:;
base[6]= cdr(base[4]);
base[5]= list(3,VV[11],car(base[4]),base[5]);
base[4]= base[6];
goto T24;
}
/* macro definition for OR */
static L5()
{ register object *base=vs_base;
register object *sup=base+VM7;
vs_reserve(VM7);
check_arg(2);
vs_top=sup;
{object V5=base[0]->c.c_cdr;
base[2]= V5;}
if(!(endp(base[2]))){
goto T34;}
base[3]= Cnil;
vs_top=(vs_base=base+3)+1;
return;
T34:;
base[3]= reverse(base[2]);
base[4]= cdr(base[3]);
base[5]= car(base[3]);
T40:;
if(!(endp(base[4]))){
goto T41;}
vs_top=(vs_base=base+5)+1;
return;
T41:;
base[6]= cdr(base[4]);
vs_base=vs_top;
Lgensym();
vs_top=sup;
base[7]= vs_base[0];
base[8]= list(2,base[7],car(base[4]));
base[9]= make_cons(base[8],Cnil);
base[10]= list(4,VV[11],base[7],base[7],base[5]);
base[5]= list(3,VV[12],base[9],base[10]);
base[4]= base[6];
goto T40;
}
/* macro definition for LOCALLY */
static L6()
{ register object *base=vs_base;
register object *sup=base+VM8;
vs_reserve(VM8);
check_arg(2);
vs_top=sup;
{object V6=base[0]->c.c_cdr;
base[2]= V6;}
base[3]= listA(3,VV[12],Cnil,base[2]);
vs_top=(vs_base=base+3)+1;
return;
}
/* macro definition for LOOP */
static L7()
{ register object *base=vs_base;
register object *sup=base+VM9;
vs_reserve(VM9);
check_arg(2);
vs_top=sup;
{object V7=base[0]->c.c_cdr;
base[2]= V7;
vs_base=vs_top;
Lgensym();
vs_top=sup;
base[3]= vs_base[0];}
base[4]= make_cons(VV[0],base[2]);
base[5]= list(2,VV[15],base[3]);
base[6]= list(4,VV[14],base[3],base[4],base[5]);
base[7]= list(3,VV[13],Cnil,base[6]);
vs_top=(vs_base=base+7)+1;
return;
}
/* macro definition for DEFMACRO */
static L8()
{ register object *base=vs_base;
register object *sup=base+VM10;
vs_reserve(VM10);
check_arg(2);
vs_top=sup;
{object V8=base[0]->c.c_cdr;
if(endp(V8))invalid_macro_call();
base[2]= (V8->c.c_car);
V8=V8->c.c_cdr;
if(endp(V8))invalid_macro_call();
base[3]= (V8->c.c_car);
V8=V8->c.c_cdr;
base[4]= V8;}
base[5]= list(2,VV[2],base[2]);
base[6]= list(2,VV[2],base[2]);
base[7]= list(2,VV[2],base[3]);
base[8]= list(2,VV[2],base[4]);
base[9]= list(4,VV[17],base[6],base[7],base[8]);
base[10]= list(3,VV[16],base[5],base[9]);
vs_top=(vs_base=base+10)+1;
return;
}
/* macro definition for DEFUN */
static L9()
{ register object *base=vs_base;
register object *sup=base+VM11;
vs_reserve(VM11);
check_arg(2);
vs_top=sup;
{object V9=base[0]->c.c_cdr;
if(endp(V9))invalid_macro_call();
base[2]= (V9->c.c_car);
V9=V9->c.c_cdr;
if(endp(V9))invalid_macro_call();
base[3]= (V9->c.c_car);
V9=V9->c.c_cdr;
base[4]= V9;}
base[6]= base[4];
base[7]= Cnil;
symlispcall_no_event(VV[65],base+6,2);
Llist();
vs_top=sup;
base[5]= vs_base[0];
base[6]= car(base[5]);
base[7]= cadr(base[5]);
base[8]= caddr(base[5]);
if((base[6])==Cnil){
goto T59;}
base[9]= list(2,VV[2],base[2]);
base[10]= list(3,VV[19],base[9],VV[20]);
base[11]= list(3,VV[18],base[10],base[6]);
base[12]= list(2,VV[2],base[2]);
base[13]= list(2,VV[21],base[12]);
base[14]= listA(3,VV[13],base[2],base[8]);
base[15]= make_cons(base[14],Cnil);
base[16]= append(base[7],base[15]);
base[17]= listA(3,VV[23],base[3],base[16]);
base[18]= list(2,VV[22],base[17]);
base[19]= list(3,VV[18],base[13],base[18]);
base[20]= list(2,VV[2],base[2]);
base[21]= list(4,VV[0],base[11],base[19],base[20]);
vs_top=(vs_base=base+21)+1;
return;
T59:;
base[9]= list(2,VV[2],base[2]);
base[10]= list(2,VV[21],base[9]);
base[11]= listA(3,VV[13],base[2],base[8]);
base[12]= make_cons(base[11],Cnil);
base[13]= append(base[7],base[12]);
base[14]= listA(3,VV[23],base[3],base[13]);
base[15]= list(2,VV[22],base[14]);
base[16]= list(3,VV[18],base[10],base[15]);
base[17]= list(2,VV[2],base[2]);
base[18]= list(3,VV[0],base[16],base[17]);
vs_top=(vs_base=base+18)+1;
return;
}
/* macro definition for PSETQ */
static L10()
{ register object *base=vs_base;
register object *sup=base+VM12;
vs_reserve(VM12);
check_arg(2);
vs_top=sup;
{object V10=base[0]->c.c_cdr;
base[2]= V10;}
{object V11;
V11= base[2];
base[3]= Cnil;
base[4]= Cnil;
T63:;
if(!(endp((V11)))){
goto T64;}
base[5]= reverse(base[4]);
base[6]= make_cons(Cnil,base[3]);
base[7]= reverse(base[6]);
base[8]= listA(3,VV[24],base[5],base[7]);
vs_top=(vs_base=base+8)+1;
return;
T64:;
vs_base=vs_top;
Lgensym();
vs_top=sup;
base[5]= vs_base[0];
base[6]= list(2,base[5],cadr((V11)));
base[4]= make_cons(base[6],base[4]);
base[6]= list(3,VV[7],car((V11)),base[5]);
base[3]= make_cons(base[6],base[3]);
V11= cddr((V11));
goto T63;}
}
/* macro definition for COND */
static L11()
{ register object *base=vs_base;
register object *sup=base+VM13;
vs_reserve(VM13);
check_arg(2);
vs_top=sup;
{object V12=base[0]->c.c_cdr;
base[2]= V12;
base[3]= Cnil;}
{object V13;
base[4]= reverse(base[2]);
V13= car(base[4]);
T80:;
if(!(endp(base[4]))){
goto T81;}
vs_top=(vs_base=base+3)+1;
return;
T81:;
if(!(endp(cdr((V13))))){
goto T87;}
if(!(car((V13))==Ct)){
goto T90;}
base[3]= Ct;
goto T85;
T90:;
vs_base=vs_top;
Lgensym();
vs_top=sup;
base[5]= vs_base[0];
base[6]= list(2,base[5],car((V13)));
base[7]= make_cons(base[6],Cnil);
base[8]= list(4,VV[11],base[5],base[5],base[3]);
base[3]= list(3,VV[12],base[7],base[8]);
goto T85;
T87:;
if(!(car((V13))==Ct)){
goto T96;}
if(!(endp(cddr((V13))))){
goto T100;}
base[3]= cadr((V13));
goto T98;
T100:;
base[3]= make_cons(VV[0],cdr((V13)));
T98:;
goto T85;
T96:;
if(!(endp(cddr((V13))))){
goto T104;}
base[3]= list(4,VV[11],car((V13)),cadr((V13)),base[3]);
goto T102;
T104:;
{object V14= car((V13));
base[5]= make_cons(VV[0],cdr((V13)));
base[3]= list(4,VV[11],V14,base[5],base[3]);}
T102:;
T85:;
base[4]= cdr(base[4]);
V13= car(base[4]);
goto T80;}
}
/* macro definition for WHEN */
static L12()
{ register object *base=vs_base;
register object *sup=base+VM14;
vs_reserve(VM14);
check_arg(2);
vs_top=sup;
{object V15=base[0]->c.c_cdr;
if(endp(V15))invalid_macro_call();
base[2]= (V15->c.c_car);
V15=V15->c.c_cdr;
base[3]= V15;}
base[4]= make_cons(VV[0],base[3]);
base[5]= list(3,VV[11],base[2],base[4]);
vs_top=(vs_base=base+5)+1;
return;
}
/* macro definition for UNLESS */
static L13()
{ register object *base=vs_base;
register object *sup=base+VM15;
vs_reserve(VM15);
check_arg(2);
vs_top=sup;
{object V16=base[0]->c.c_cdr;
if(endp(V16))invalid_macro_call();
base[2]= (V16->c.c_car);
V16=V16->c.c_cdr;
base[3]= V16;}
base[4]= list(2,VV[25],base[2]);
base[5]= make_cons(VV[0],base[3]);
base[6]= list(3,VV[11],base[4],base[5]);
vs_top=(vs_base=base+6)+1;
return;
}
/* macro definition for PROG */
static L14()
{ register object *base=vs_base;
register object *sup=base+VM16;
vs_reserve(VM16);
check_arg(2);
vs_top=sup;
{object V17=base[0]->c.c_cdr;
if(endp(V17))invalid_macro_call();
base[2]= (V17->c.c_car);
V17=V17->c.c_cdr;
base[3]= V17;
base[4]= Cnil;}
T113:;
if(endp(base[3])){
goto T115;}
if(!(type_of(car(base[3]))==t_cons)){
goto T115;}
if(caar(base[3])==VV[26]){
goto T114;}
T115:;
base[5]= make_cons(VV[14],base[3]);
base[6]= make_cons(base[5],Cnil);
base[7]= append(base[4],base[6]);
base[8]= listA(3,VV[12],base[2],base[7]);
base[9]= list(3,VV[13],Cnil,base[8]);
vs_top=(vs_base=base+9)+1;
return;
T114:;
base[4]= make_cons(car(base[3]),base[4]);
base[5]= car(base[3]);
base[3]= cdr(base[3]);
goto T113;
}
/* macro definition for PROG* */
static L15()
{ register object *base=vs_base;
register object *sup=base+VM17;
vs_reserve(VM17);
check_arg(2);
vs_top=sup;
{object V18=base[0]->c.c_cdr;
if(endp(V18))invalid_macro_call();
base[2]= (V18->c.c_car);
V18=V18->c.c_cdr;
base[3]= V18;
base[4]= Cnil;}
T132:;
if(endp(base[3])){
goto T134;}
if(!(type_of(car(base[3]))==t_cons)){
goto T134;}
if(caar(base[3])==VV[26]){
goto T133;}
T134:;
base[5]= make_cons(VV[14],base[3]);
base[6]= make_cons(base[5],Cnil);
base[7]= append(base[4],base[6]);
base[8]= listA(3,VV[24],base[2],base[7]);
base[9]= list(3,VV[13],Cnil,base[8]);
vs_top=(vs_base=base+9)+1;
return;
T133:;
base[4]= make_cons(car(base[3]),base[4]);
base[5]= car(base[3]);
base[3]= cdr(base[3]);
goto T132;
}
/* macro definition for PROG1 */
static L16()
{ register object *base=vs_base;
register object *sup=base+VM18;
vs_reserve(VM18);
check_arg(2);
vs_top=sup;
{object V19=base[0]->c.c_cdr;
if(endp(V19))invalid_macro_call();
base[2]= (V19->c.c_car);
V19=V19->c.c_cdr;
base[3]= V19;
vs_base=vs_top;
Lgensym();
vs_top=sup;
base[4]= vs_base[0];}
base[5]= list(2,base[4],base[2]);
base[6]= make_cons(base[5],Cnil);
base[7]= make_cons(base[4],Cnil);
base[8]= append(base[3],base[7]);
base[9]= listA(3,VV[12],base[6],base[8]);
vs_top=(vs_base=base+9)+1;
return;
}
/* macro definition for PROG2 */
static L17()
{ register object *base=vs_base;
register object *sup=base+VM19;
vs_reserve(VM19);
check_arg(2);
vs_top=sup;
{object V20=base[0]->c.c_cdr;
if(endp(V20))invalid_macro_call();
base[2]= (V20->c.c_car);
V20=V20->c.c_cdr;
if(endp(V20))invalid_macro_call();
base[3]= (V20->c.c_car);
V20=V20->c.c_cdr;
base[4]= V20;
vs_base=vs_top;
Lgensym();
vs_top=sup;
base[5]= vs_base[0];}
base[6]= list(2,base[5],base[3]);
base[7]= make_cons(base[6],Cnil);
base[8]= make_cons(base[5],Cnil);
base[9]= append(base[4],base[8]);
base[10]= listA(3,VV[12],base[7],base[9]);
base[11]= list(3,VV[0],base[2],base[10]);
vs_top=(vs_base=base+11)+1;
return;
}
/* macro definition for MULTIPLE-VALUE-LIST */
static L18()
{ register object *base=vs_base;
register object *sup=base+VM20;
vs_reserve(VM20);
check_arg(2);
vs_top=sup;
{object V21=base[0]->c.c_cdr;
if(endp(V21))invalid_macro_call();
base[2]= (V21->c.c_car);
V21=V21->c.c_cdr;
if(!endp(V21))invalid_macro_call();}
base[3]= list(3,VV[27],VV[28],base[2]);
vs_top=(vs_base=base+3)+1;
return;
}
/* macro definition for MULTIPLE-VALUE-SETQ */
static L19()
{ register object *base=vs_base;
register object *sup=base+VM21;
vs_reserve(VM21);
check_arg(2);
vs_top=sup;
{object V22=base[0]->c.c_cdr;
if(endp(V22))invalid_macro_call();
base[2]= (V22->c.c_car);
V22=V22->c.c_cdr;
if(endp(V22))invalid_macro_call();
base[3]= (V22->c.c_car);
V22=V22->c.c_cdr;
if(!endp(V22))invalid_macro_call();}
{object V23;
int V24;
V23= base[2];
vs_base=vs_top;
Lgensym();
vs_top=sup;
base[4]= vs_base[0];
V24= 0;
base[5]= Cnil;
T155:;
if(!(endp((V23)))){
goto T156;}
base[6]= list(2,VV[30],base[3]);
base[7]= list(2,base[4],base[6]);
base[8]= make_cons(base[7],Cnil);
base[9]= listA(3,VV[12],base[8],base[5]);
vs_top=(vs_base=base+9)+1;
return;
T156:;
{object V25= car((V23));
base[6]= make_fixnum(V24);
base[7]= list(3,VV[31],base[6],base[4]);
base[8]= list(3,VV[7],V25,base[7]);
base[5]= make_cons(base[8],base[5]);}
V23= cdr((V23));
V24= (V24)+1;
goto T155;}
}
/* macro definition for MULTIPLE-VALUE-BIND */
static L20()
{ register object *base=vs_base;
register object *sup=base+VM22;
vs_reserve(VM22);
check_arg(2);
vs_top=sup;
{object V26=base[0]->c.c_cdr;
if(endp(V26))invalid_macro_call();
base[2]= (V26->c.c_car);
V26=V26->c.c_cdr;
if(endp(V26))invalid_macro_call();
base[3]= (V26->c.c_car);
V26=V26->c.c_cdr;
base[4]= V26;}
{object V27;
int V28;
V27= base[2];
vs_base=vs_top;
Lgensym();
vs_top=sup;
base[5]= vs_base[0];
V28= 0;
base[6]= Cnil;
T170:;
if(!(endp((V27)))){
goto T171;}
base[7]= list(2,VV[30],base[3]);
base[8]= list(2,base[5],base[7]);
base[9]= reverse(base[6]);
base[10]= make_cons(base[8],base[9]);
base[11]= listA(3,VV[24],base[10],base[4]);
vs_top=(vs_base=base+11)+1;
return;
T171:;
{object V29= car((V27));
base[7]= make_fixnum(V28);
base[8]= list(3,VV[31],base[7],base[5]);
base[9]= list(2,V29,base[8]);
base[6]= make_cons(base[9],base[6]);}
V27= cdr((V27));
V28= (V28)+1;
goto T170;}
}
/* macro definition for DO */
static L21()
{ register object *base=vs_base;
register object *sup=base+VM23;
vs_reserve(VM23);
check_arg(2);
vs_top=sup;
{object V30=base[0]->c.c_cdr;
if(endp(V30))invalid_macro_call();
base[2]= (V30->c.c_car);
V30=V30->c.c_cdr;
if(endp(V30))invalid_macro_call();
{object V31= (V30->c.c_car);
if(endp(V31))invalid_macro_call();
base[3]= (V31->c.c_car);
V31=V31->c.c_cdr;
base[4]= V31;}
V30=V30->c.c_cdr;
base[5]= V30;
base[6]= Cnil;
vs_base=vs_top;
Lgensym();
vs_top=sup;
base[7]= vs_base[0];
base[8]= Cnil;
base[9]= Cnil;}
T187:;
if(endp(base[5])){
goto T189;}
if(!(type_of(car(base[5]))==t_cons)){
goto T189;}
if(caar(base[5])==VV[26]){
goto T188;}
T189:;
goto T185;
T188:;
base[6]= make_cons(car(base[5]),base[6]);
base[10]= car(base[5]);
base[5]= cdr(base[5]);
goto T187;
T185:;
{object V32;
base[10]= base[2];
V32= car(base[10]);
T207:;
if(!(endp(base[10]))){
goto T208;}
goto T204;
T208:;
base[11]= list(2,car((V32)),cadr((V32)));
base[8]= make_cons(base[11],base[8]);
if(endp(cddr((V32)))){
goto T214;}
base[9]= make_cons(car((V32)),base[9]);
base[9]= make_cons(caddr((V32)),base[9]);
T214:;
base[10]= cdr(base[10]);
V32= car(base[10]);
goto T207;}
T204:;
base[10]= reverse(base[8]);
base[11]= make_cons(VV[0],base[4]);
base[12]= list(2,VV[32],base[11]);
base[13]= list(3,VV[11],base[3],base[12]);
base[14]= make_cons(VV[14],base[5]);
base[15]= reverse(base[9]);
base[16]= make_cons(VV[33],base[15]);
base[17]= list(2,VV[15],base[7]);
base[18]= list(6,VV[14],base[7],base[13],base[14],base[16],base[17]);
base[19]= make_cons(base[18],Cnil);
base[20]= append(base[6],base[19]);
base[21]= listA(3,VV[12],base[10],base[20]);
base[22]= list(3,VV[13],Cnil,base[21]);
vs_top=(vs_base=base+22)+1;
return;
}
/* macro definition for DO* */
static L22()
{ register object *base=vs_base;
register object *sup=base+VM24;
vs_reserve(VM24);
check_arg(2);
vs_top=sup;
{object V33=base[0]->c.c_cdr;
if(endp(V33))invalid_macro_call();
base[2]= (V33->c.c_car);
V33=V33->c.c_cdr;
if(endp(V33))invalid_macro_call();
{object V34= (V33->c.c_car);
if(endp(V34))invalid_macro_call();
base[3]= (V34->c.c_car);
V34=V34->c.c_cdr;
base[4]= V34;}
V33=V33->c.c_cdr;
base[5]= V33;
base[6]= Cnil;
vs_base=vs_top;
Lgensym();
vs_top=sup;
base[7]= vs_base[0];
base[8]= Cnil;
base[9]= Cnil;}
T231:;
if(endp(base[5])){
goto T233;}
if(!(type_of(car(base[5]))==t_cons)){
goto T233;}
if(caar(base[5])==VV[26]){
goto T232;}
T233:;
goto T229;
T232:;
base[6]= make_cons(car(base[5]),base[6]);
base[10]= car(base[5]);
base[5]= cdr(base[5]);
goto T231;
T229:;
{object V35;
base[10]= base[2];
V35= car(base[10]);
T251:;
if(!(endp(base[10]))){
goto T252;}
goto T248;
T252:;
base[11]= list(2,car((V35)),cadr((V35)));
base[8]= make_cons(base[11],base[8]);
if(endp(cddr((V35)))){
goto T258;}
base[9]= make_cons(car((V35)),base[9]);
base[9]= make_cons(caddr((V35)),base[9]);
T258:;
base[10]= cdr(base[10]);
V35= car(base[10]);
goto T251;}
T248:;
base[10]= reverse(base[8]);
base[11]= make_cons(VV[0],base[4]);
base[12]= list(2,VV[32],base[11]);
base[13]= list(3,VV[11],base[3],base[12]);
base[14]= make_cons(VV[14],base[5]);
base[15]= reverse(base[9]);
base[16]= make_cons(VV[7],base[15]);
base[17]= list(2,VV[15],base[7]);
base[18]= list(6,VV[14],base[7],base[13],base[14],base[16],base[17]);
base[19]= make_cons(base[18],Cnil);
base[20]= append(base[6],base[19]);
base[21]= listA(3,VV[24],base[10],base[20]);
base[22]= list(3,VV[13],Cnil,base[21]);
vs_top=(vs_base=base+22)+1;
return;
}
/* macro definition for CASE */
static L23()
{ register object *base=vs_base;
register object *sup=base+VM25;
vs_reserve(VM25);
check_arg(2);
vs_top=sup;
{object V36=base[0]->c.c_cdr;
if(endp(V36))invalid_macro_call();
base[2]= (V36->c.c_car);
V36=V36->c.c_cdr;
base[3]= V36;
base[4]= Cnil;
vs_base=vs_top;
Lgensym();
vs_top=sup;
base[5]= vs_base[0];}
{object V37;
base[6]= reverse(base[3]);
V37= car(base[6]);
T274:;
if(!(endp(base[6]))){
goto T275;}
base[7]= list(2,base[5],base[2]);
base[8]= make_cons(base[7],Cnil);
base[9]= list(3,VV[12],base[8],base[4]);
vs_top=(vs_base=base+9)+1;
return;
T275:;
if(car((V37))==Ct){
goto T280;}
if(!(car((V37))==VV[34])){
goto T281;}
T280:;
base[4]= make_cons(VV[0],cdr((V37)));
goto T279;
T281:;
if(!(type_of(car((V37)))==t_cons)){
goto T287;}
base[7]= list(2,VV[2],car((V37)));
base[8]= list(3,VV[35],base[5],base[7]);
base[9]= make_cons(VV[0],cdr((V37)));
base[4]= list(4,VV[11],base[8],base[9],base[4]);
goto T279;
T287:;
if((car((V37)))==Cnil){
goto T279;}
base[7]= list(2,VV[2],car((V37)));
base[8]= list(3,VV[36],base[5],base[7]);
base[9]= make_cons(VV[0],cdr((V37)));
base[4]= list(4,VV[11],base[8],base[9],base[4]);
T279:;
base[6]= cdr(base[6]);
V37= car(base[6]);
goto T274;}
}
/* macro definition for RETURN */
static L24()
{ register object *base=vs_base;
register object *sup=base+VM26;
vs_reserve(VM26);
check_arg(2);
vs_top=sup;
{object V38=base[0]->c.c_cdr;
if(endp(V38)){
base[2]= Cnil;
} else {
base[2]= (V38->c.c_car);
V38=V38->c.c_cdr;}
if(!endp(V38))invalid_macro_call();}
base[3]= list(3,VV[37],Cnil,base[2]);
vs_top=(vs_base=base+3)+1;
return;
}
/* macro definition for DOLIST */
static L25()
{ register object *base=vs_base;
register object *sup=base+VM27;
vs_reserve(VM27);
check_arg(2);
vs_top=sup;
{object V39=base[0]->c.c_cdr;
if(endp(V39))invalid_macro_call();
{object V40= (V39->c.c_car);
if(endp(V40))invalid_macro_call();
base[2]= (V40->c.c_car);
V40=V40->c.c_cdr;
if(endp(V40))invalid_macro_call();
base[3]= (V40->c.c_car);
V40=V40->c.c_cdr;
if(endp(V40)){
base[4]= Cnil;
} else {
base[4]= (V40->c.c_car);
V40=V40->c.c_cdr;}
if(!endp(V40))invalid_macro_call();}
V39=V39->c.c_cdr;
base[5]= V39;
vs_base=vs_top;
Lgensym();
vs_top=sup;
base[6]= vs_base[0];}
base[7]= list(2,VV[39],base[6]);
base[8]= list(3,base[6],base[3],base[7]);
base[9]= list(2,VV[40],base[6]);
base[10]= list(2,VV[40],base[6]);
base[11]= list(3,base[2],base[9],base[10]);
base[12]= list(2,base[8],base[11]);
base[13]= list(2,VV[41],base[6]);
base[14]= list(2,base[13],base[4]);
base[15]= listA(4,VV[38],base[12],base[14],base[5]);
vs_top=(vs_base=base+15)+1;
return;
}
/* macro definition for DOTIMES */
static L26()
{ register object *base=vs_base;
register object *sup=base+VM28;
vs_reserve(VM28);
check_arg(2);
vs_top=sup;
{object V41=base[0]->c.c_cdr;
if(endp(V41))invalid_macro_call();
{object V42= (V41->c.c_car);
if(endp(V42))invalid_macro_call();
base[2]= (V42->c.c_car);
V42=V42->c.c_cdr;
if(endp(V42))invalid_macro_call();
base[3]= (V42->c.c_car);
V42=V42->c.c_cdr;
if(endp(V42)){
base[4]= Cnil;
} else {
base[4]= (V42->c.c_car);
V42=V42->c.c_cdr;}
if(!endp(V42))invalid_macro_call();}
V41=V41->c.c_cdr;
base[5]= V41;
vs_base=vs_top;
Lgensym();
vs_top=sup;
base[6]= vs_base[0];}
base[7]= list(2,base[6],base[3]);
base[8]= list(2,VV[42],base[2]);
base[9]= list(3,base[2],VV[29],base[8]);
base[10]= list(2,base[7],base[9]);
base[11]= list(3,VV[43],base[2],base[6]);
base[12]= list(2,base[11],base[4]);
base[13]= listA(4,VV[38],base[10],base[12],base[5]);
vs_top=(vs_base=base+13)+1;
return;
}